package com.billard.service;

import com.billard.dto.LoginDTO;
import com.billard.result.PageResult;
import com.billard.Query.UserQuery;
import com.billard.entity.User;
import com.billard.vo.LoginVO;

/**
 * 用户服务接口
 */
public interface UserService {

    /**
     * 用户登录
     */
    LoginVO login(LoginDTO loginDTO);

    /**
     * 根据ID查询用户
     */
    User getUserById(Long id);

    /**
     * 根据用户名查询用户
     */
    User getUserByUsername(String username);

    /**
     * 创建用户
     */
    void createUser(User user);

    /**
     * 更新用户
     */
    void updateUser(User user);

    /**
     * 删除用户
     */
    void deleteUser(Long id);

    /**
     * 分页条件查询用户
     */
    PageResult page(UserQuery query);

    /**
     * 更新用户密码
     */
    void updatePassword(Long id, String oldPassword, String newPassword);

    /**
     * 为用户分配角色
     */
    void assignRoleToUser(Long userId, Long roleId);
}